package com.business.dynamic.service;


import com.baomidou.mybatisplus.plugins.Page;
import com.business.common.dto.R;
import com.business.common.utils.PageUtils;
import com.business.dynamic.dto.DynamicParams;
import com.business.dynamic.entity.Dynamic;
import com.business.dynamic.entity.vo.DynamicVo;

import java.util.List;

/**
 * 动态表:业务接口类
 * @author chenjiehong
 * @date 2019-11-29 15:15:38
 * @since 1.0
 */
public interface DynamicService {
    
    /**
     * 新增动态表
     * 
     * 
     * @param dynamicVo
     * @date 2019-11-29 15:15:38
     */
    DynamicVo add(DynamicVo dynamicVo);
    
    
    /**
     * 查询动态表
     * 
     * 
     * @param id
     * @date 2019-11-29 15:15:38
     */
    DynamicVo query(Integer id,Integer userId);

    /**
     * 隐藏或者关闭评论
     *
     *
     * @param dynamicId
     * @date 2019-11-29 15:15:38
     */
    Integer updateState(Integer dynamicId,Integer state, Integer userDtoId);


    /**
     * 删除动态表
     *
     *
     * @param id
     * @date 2019-11-29 15:15:38
     */
    Integer delete(Integer id, Integer userDtoId);

    /**
     * 查看关注列表
     * 
     * 
     * @param page
     * @param userId
     * @date 2019-11-29 15:15:38
     */
    PageUtils queryPageByUser(Page<Dynamic> page, Integer userId);

    /**
     * 查看用户发布的动态
     * @param page
     * @param userId
     * @return
     */
    PageUtils queryPageByMyself(Page<Dynamic> page, Integer userId);


    /**
     * 查看推荐列表
     *
     *
     * @param page
     * @param userId
     * @date 2019-11-29 15:15:38
     */
    PageUtils queryPageByUserTag(Page<Dynamic> page, Integer userId);

    /**
     * 查看点赞列表
     *
     *
     * @param page
     * @param userId
     * @date 2019-11-29 15:15:38
     */
    PageUtils queryPageByUserLike(Page<Dynamic> page, Integer userId);


    /**
     * 查看收藏列表
     *
     *
     * @param page
     * @param userId
     * @date 2019-11-29 15:15:38
     */
    PageUtils queryPageByUserCollection(Page<Dynamic> page, Integer userId);

    /**
     * 查看发现列表
     * @param page
     * @param dynamicParams
     * @return
     */
    PageUtils queryPage(Page<Dynamic> page, DynamicParams dynamicParams, Integer userId);

    /**
     * 按行业获取推荐列表
     * @param userId
     * @return
     */
    List<DynamicVo> getRecommendList(Integer userId);

    

}